package com.example.study.common.base;

/**
 * @author kuotian
 */

public enum CommonResponseCode implements RestResponseCode {
    /**
     * 处理成功
     */
    SUCCESS(10000, "处理成功"),

    /**
     * 处理失败
     */
    FAIL(20000, "处理失败"),

    /**
     * 请求错误
     */
    LACK_PARAM(400, "缺少参数"),

    /**
     * 请求方式有误
     */
    REQUEST_TYPE_ERROR(405, "请求方式有误"),

    /**
     * 服务器繁忙，请稍后再试
     */
    FEIGN_SERVER_ERROR(20000, "服务器繁忙，请稍后再试"),

    /**
     * 文件大小超过限制
     */
    MAX_UPLOAD_SIZE_EXCEEDED(460, "抱歉，文件大小超过限制"),

    /**
     * 验证码发送成功
     */
    PHONECODE_SUCCESS(10000, "短信动态码发送成功！有效时间为3分钟!"),
    /**
     * 验证码发送失败
     */
    PHONECODE_FAIL(20000, "短信动态码发送失败，请稍后再试!"),

    /**
     * 数据已存在
     */
    DATA_EXISTS(20001, "数据已存在"),
    /**
     * 数据不存在
     */
    DATA_NOT_EXISTS(20000, "数据不存在"),
    /**
     * 用户无权操作
     */
    USER_NO_PERMISSION(20000, "当前用户无权操作"),

    /**
     * 业务接口调用失败
     */
    REQUEST_FAILED(20010, "请求服务失败"),

    /**
     * 银行服务调用失败
     */
    BANK_INVOKE_ERROR(2301, "银行服务调用失败"),

    /**
     * 没有托运资质
     */
    NO_CONSIGN_IDENTITY(20205, "没有托运资质,不能进行操作"),

    /**
     * 没有承运资质
     */
    NO_CARRIER_IDENTITY(20210, "没有承运资质,不能进行操作"),
    /**
     * 没有经纪人资质
     */
    NO_AGENT_IDENTITY(20210, "没有经纪人资质,不能进行操作"),
    /**
     * 没有网络货运权限
     */
    NO_NET_SOURCE_PERMISSION(20210, "没有网络货运权限,不能进行操作"),
    /**
     * 承运保证金已经支付
     */
    CARRIER_DEPOSIT_PAID(200220, "该订单承运方已支付保证金"),
    /**
     * 托运保证金已经支付
     */
    CONSIGN_DEPOSIT_PAID(200220, "该订单托运方已支付保证金"),

    /**
     * 请勿重复支付
     */
    HAVEPAY(20105, "已支付，请勿重复支付"),

    /**
     * 账户可用余额不足
     */
    USE_BALANCE_NOT_ENOUGH(20107, "账户可用余额不足"),

    /**
     * 请勿重复提交
     */
    REPEAT_SUBMIT(20110, "请求用户过多，请稍后重试"),

    /**
     * 参数错误
     */
    PARAMS_ERROR(20111, "参数错误"),

    /**
     * 您没有该权限
     */
    UNAUTHORIZATION(20112, "抱歉，您没有该权限"),

    /**
     * 银行卡号与银行名称不匹配
     */
    BANK_NAME_ERROR(20114, "对不起，您输入的银行卡号与银行名称不匹配"),

    /**
     * 日期格式异常
     */
    DESERIALIZE_DATE_ERROR(20115, "日期格式不正确"),

    /**
     * 地址信息是否合理
     */
    ADDRESS_NOT_VALID(20000, "请确认地址信息是否合理")

    /**
     * 失效token状态码
     */


    ;
    private int code;
    private String message;

    CommonResponseCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    @Override
    public String getName() {
        return name();
    }
}
